#pragma once
#include <string>
#include "../Event/EventManager.h"
#include "../Event/Events.h"
#include "TimeStep.hpp"
namespace Kriko{
	class Layer
	{
	public:
		Layer(const std::string& p_name = "Layer") :m_name(p_name) {}
		virtual ~Layer() = default;

		virtual void OnAttach() {}
		virtual void OnDetach() {}
		virtual void OnUpdate(const TimeStep& p_deltaTime) {}
		virtual void OnImGuiRender() {}
		virtual void OnEvent(IEventDataPtr pEvent) {}

		const std::string& GetName() const { return m_name; }
	private:
		std::string m_name;
	};
}

